// pages/biz-manage/confirm.js
const auth = require('../../utils/auth.js');
const bizOrder = require('../../services/bizOrder.js');

Page({
  data: {
    code: '', // 核销码
    isSubmitting: false, // 是否正在提交
    userInfo: null,
    loginReady: false,
    isLoggedIn: false,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 检查登录状态
    this.checkLoginStatus();
  },

  /**
   * 检查登录状态
   */
  async checkLoginStatus() {
    try {
      const loginStatus = await auth.checkLoginStatus();
      
      this.setData({
        isLoggedIn: loginStatus.isLoggedIn,
        userInfo: loginStatus.userInfo,
        loginReady: true
      });
    } catch (error) {
      this.setData({
        isLoggedIn: false,
        userInfo: null,
        loginReady: true
      });
    }
  },

  /**
   * 输入核销码
   */
  onCodeInput(e) {
    this.setData({
      code: e.detail.value.trim()
    });
  },

  /**
   * 确认核销
   */
  async onConfirmVerify() {
    // 检查登录状态
    if (!this.data.isLoggedIn) {
      wx.showToast({ 
        title: '请先登录', 
        icon: 'none' 
      });
      return;
    }

    // 验证核销码
    if (!this.data.code) {
      wx.showToast({ 
        title: '请输入核销码', 
        icon: 'none' 
      });
      return;
    }

    // 显示确认对话框
    wx.showModal({
      title: '确认核销',
      content: `确定要核销核销码 "${this.data.code}" 吗？核销后将无法撤销。`,
      success: async (res) => {
        if (res.confirm) {
          await this.submitVerify();
        }
      }
    });
  },

  /**
   * 提交核销
   */
  async submitVerify() {
    if (this.data.isSubmitting) {
      return;
    }

    this.setData({ isSubmitting: true });
    
    // 显示加载提示
    wx.showLoading({ title: '核销中...' });
    
    try {
      const result = await bizOrder.useTicket(this.data.code);
      
      wx.hideLoading();
      
      if (result.success) {
        wx.showToast({ 
          title: '核销成功', 
          icon: 'success',
          duration: 2000
        });
        
        // 清空输入框
        this.setData({
          code: ''
        });
        
        // 延迟返回上一页
        setTimeout(() => {
          wx.navigateBack();
        }, 2000);
      } else {
        wx.showToast({ 
          title: result.message || '核销失败', 
          icon: 'none' 
        });
      }
    } catch (error) {
      wx.hideLoading();
      wx.showToast({ 
        title: '网络异常，请稍后重试', 
        icon: 'none' 
      });
    } finally {
      this.setData({ isSubmitting: false });
    }
  },

  /**
   * 自动登录完成回调
   */
  onAutoLoginComplete(isLoggedIn, userInfo) {
    this.setData({
      isLoggedIn: isLoggedIn,
      userInfo: userInfo,
      loginReady: true
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    if (this.data.loginReady) {
      this.checkLoginStatus();
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  onScanCode() {
    wx.scanCode({
      success: (res) => {
        console.log(res);
      }
    })
  }
})